終於要開始寫模組了,不過這只能算是個前菜而已,學習程式的人多少都會碰到Hello world的範例,所以這一篇我們就來個Hello DotNetNuke學習一下怎麼開發DotNetNuke的模組吧!
首先,必須先介紹模組的型態,DotNetNuke的模組分為三種不同的型態,分別是View、Edit、Setting,也就是模組的檢視、編輯和設定,以之前介紹的HTML模組(參考這篇)來說,使用者看到的結果就是View型態的控制項,而管理者在編輯HTML內容的部份就是Edit型態的控制項,而設定HTML模組的Title標題就是使用到Setting型態的控制項。
這一篇的Hello DotNetNuke先從簡單的View控制項開始,建立一個「ASP.NET 空白 Web 應用程式」專案,並且將專案命名為「Hello DotNetNuke」。(沒有安裝Visual Studio的可以從這邊下載Visual Studio Express 2012 for Web免費版)
專案檔案可以自行選擇儲存的位置或者是放在網站目錄中的DesktopModules目錄,並在裡面建立Hello DotNetNuke目錄。
接著在專案中加入DotNetNuke.dll的組件參考(網站的bin目錄中),然後加入新的Web使用者控制項(User Control),並且命名為「View.ascx」。(View只是方便識別,也可以是HelloDotNetNukeView)
這個Hello DotNetNuke的範例非常的單純,所以我們只需要在View.ascx中加入「Hello DotNetNuke」文字,在View.ascx.cs檔案將繼承的父類別修改為「DotNetNuke.Entities.Modules.PortalModuleBase」。
PortalModuleBase是網站模組的基底類別,其中有許多DotNetNuke寫好提供給模組開發人員使用的功能,後續的章節再慢慢介紹。
修改完View.ascx和View.ascx.cs檔案之後,大致上就完成Hello DotNetNuke模組了,只是我們還必須讓它能夠使用DotNetNuke的安裝精靈將模組安裝到DotNetNuke網站中,所以我們還必須在專案中加入一個XML檔(或文字檔),並且將檔案命名為「HelloDotNetNuke.dnn」,這是DotNetNuke定制的安裝組態檔,用來告訴DotNetNuke的安裝程序必要的資訊,格式如下:
<dotnetnuke type="Package" version="5.0">
<packages>
<package name="HelloDotNetNuke" type="Module" version="01.00.00">
<friendlyName>HelloDotNetNuke</friendlyName>
<description>DotNetNuke模組範例</description>
<iconFile />
<owner>
<name>MicroDream Corporation</name>
<organization>MicroDream Corporation</organization>
<url>http://www.microdream.com.tw</url>
<email>kenny@microdream.com.tw</email>
</owner>
<license />
<releaseNotes />
<dependencies>
<dependency type="CoreVersion">06.00.00</dependency>
</dependencies>
<components>
<!-- <component type="Script">
<scripts>
<basePath></basePath>
<script type="Install">
<name>01.00.00.SqlDataProvider</name>
<version>01.00.00</version>
</script>
<script type="UnInstall">
<name>Uninstall.SqlDataProvider</name>
<version>01.00.00</version>
</script>
</scripts>
</component> -->
<component type="Module">
<desktopModule>
<moduleName>HelloDotNetNuke</moduleName>
<foldername>HelloDotNetNuke</foldername>
<businessControllerClass />
<supportedFeatures />
<moduleDefinitions>
<moduleDefinition>
<friendlyName>HelloDotNetNuke</friendlyName>
<defaultCacheTime>0</defaultCacheTime>
<moduleControls>
<moduleControl>
<controlKey />
<controlSrc>DesktopModules/HelloDotNetNuke/View.ascx</controlSrc>
<supportsPartialRendering>True</supportsPartialRendering>
<controlTitle />
<controlType>View</controlType>
<iconFile />
<helpUrl />
<supportsPopUps>True</supportsPopUps>
</moduleControl>
</moduleControls>
</moduleDefinition>
</moduleDefinitions>
</desktopModule>
</component>
<component type="Assembly">
<assemblies>
<basePath>bin</basePath>
<assembly>
<name>HelloDotNetNuke.dll</name>
</assembly>
</assemblies>
</component>
<component type="File">
<files>
<basePath>DesktopModules\HelloDotNetNuke</basePath>
<file>
<name>View.ascx</name>
</file>
</files>
</component>
</components>
</package>
</packages>
</dotnetnuke>
(這篇先不針對dnn檔案說明,後續的文章會有較多的介紹。)
最後針對專案執行「建置」(Build Project),因為我們需要專案產生出來的dll檔案。有了這些檔案之後,我們就可以把它們”打包”成DotNetNuke的模組安裝檔-Zip檔。
為了不錯亂掉,所以我們找個地方建立一個新的資料夾,命名為HelloDotNetNuke,資料夾內再新增一個Bin資料夾,將專案建置出來的dll檔案放在Bin資料夾內,其它的檔案(如下)則放在HelloDotNetNuke資料夾內。
需要的檔案有:
1.HelloDotNetNuke.dll (放Bin資料夾內)
2.View.ascx
3.HelloDotNetNuke.dnn
注意:專案檔和web.config檔這些不在上列的檔案都不需要。
把這些檔案壓縮成Zip檔。
在網站中登入管理者權限,在Admin選單中選擇「擴充套件」項目:
在擴充套件的頁面選擇「擴充套件安裝精靈」,接著就和安裝語系檔一樣,挑選剛才壓縮的Zip檔,持續按「下一頁」,精靈會自動根據dnn檔案內的資訊將模組安裝好。
安裝完成後,在擴充套件頁面的模組列表中就會看到我們剛才安裝的Hello DotNetNuke模組。
我們試著在TestPage中新增HelloDotNetNuke模組(註),將它放在leftPane的區域,最後完成的訪客瀏覽畫面如下:
註:忘了TestPage和新增模組的方式嗎?參考這篇吧!
(本文同步發表於泰克哪裡去部落格)
[鐵人賽Day1]DotNetNuke簡介
[鐵人賽Day2]DotNetNuke安裝前置作業
[鐵人賽Day3]DotNetNuke安裝-傳統方式安裝在IIS
[鐵人賽Day4]DotNetNuke安裝-透過Web PI安裝
[鐵人賽Day5]DotNetNuke安裝-使用Windows Azure Website
[鐵人賽Day6]DotNetNuke網站結構說明
[鐵人賽Day7]安裝DotNetNuke語系
[鐵人賽Day8]DotNetNuke-新增頁面與模組
[鐵人賽Day10]DotNetNuke模組的多國語系
[鐵人賽Day11]安裝DotNetNuke專案範本
[鐵人賽Day12]DotNetNuke模組設計範本–SimpleModule(1)
[鐵人賽Day13]DotNetNuke模組設計範本–SimpleModule(2)
[鐵人賽Day14]DotNetNuke模組設計範本–SimpleModule(3)
[鐵人賽Day15]DotNetNuke模組設計範本–SimpleModule(4)
[鐵人賽Day16]DotNetNuke使用篇–會員帳號設定(User Account Settings)
[鐵人賽Day17]DotNetNuke使用篇–第三方帳號驗證
[鐵人賽Day18]DotNetNuke使用篇–管理使用者帳號、角色
[鐵人賽Day19]DotNetNuke使用篇–建立子網站
[鐵人賽Day20]DotNetNuke使用篇–內容多語系化
[鐵人賽Day21]DotNetNuke使用篇–Host設定介紹
[鐵人賽Day22]DotNetNuke使用篇–網站設定(Site Settings)介紹
[鐵人賽Day23]翻譯DotNetNuke–使用語言編輯器
[鐵人賽Day24]DotNetNuke的網頁選單(Menu)翻譯
[鐵人賽Day25]設定DotNetNuke的Email範本
[鐵人賽Day26]DotNetNuke寄送郵件功能介紹
[鐵人賽Day27]查看DotNetNuke的執行記錄–事件檢視器(Log Viewer)介紹
[鐵人賽Day28]維護DotNetNuke的清單列表(List)–在Profile中可以下拉選擇台灣的縣市
[鐵人賽Day29]DotNetNuke樣式設計–Skin和Container簡介
[鐵人賽Day30]尋找更多的DotNetNuke擴充套件(Module、Skin)